/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * Funcion que recibe un correo y verifica que el formato del  mismo sea valido
 */
function validateEmail(correo)
{
    var splitted = correo.match("^(.+)@(.+)$");
    if(splitted == null)  return false;
    if(splitted[1] != null )
    {
        var regexp_user=/^\"?[\w-_\.]*\"?$/;
        if(splitted[1].match(regexp_user) == null) return false;
    }
    if(splitted[2] != null)
    {
        var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
        if(splitted[2].match(regexp_domain) == null)
        {
            var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
            if(splitted[2].match(regexp_ip) == null) return false;
        }// if
        return true;
    }
    return false;
}

/*
 * Funcion que recibe el formulario de registro de usuario y valida los campos
 */
function validarUsuario(formulario){

    var filterletras = /^[a-zA-Z. ]+$/i;

    error = false;

    mensaje = "ERRORES: \n";

    /*Se valida que el campo nombre no este vacio*/
    if (formulario.nombre.value == ""){
        mensaje +='-El campo nombre no puede estar vacio.\n';
        error = true;
    }

    /*Se valida que el campo nombre no exceda de 30 caracteres*/
    if (formulario.nombre.value.length > 30){
        mensaje +='-El campo nombre no puede superar los 30 caracteres.\n';
        error = true;
    }

    /*Se valida que el campo nombre conste solamente de caracteres alfabeticos*/
    if (!filterletras.test(formulario.nombre.value))
    {
        mensaje +='-Nombre invalido, solo se permiten caracteres alfabeticos.\n';
        error = true;
    }

    /*Se valida que el campo apellido no este vacio*/
    if (formulario.apellido.value == "") {
        mensaje +='-El campo apellido no puede estar vacio.\n';
        error = true;
    }

    /*Se valida que el campo apellido no exceda los 30 caracteres*/
    if (formulario.apellido.value.length > 30){
        mensaje +='-El campo apellido no puede superar los 30 caracteres.\n';
        error = true;
    }

    /*Se valida que el campo apellido conste solamente de caracteres alfabeticos*/
    if (!filterletras.test(formulario.apellido.value)){
        mensaje +='-Apellido invalido, solo se permiten caracteres alfabeticos.\n';
        error = true;
    }

    /*Se valida que el campo correo no este vacio*/
    if (formulario.correo.value == "") {
        mensaje +='-El campo correo no puede estar vacio.\n';
        error = true;
    }

    /*Se valida que el campo correo no exceda de 45 caracteres*/
    if (formulario.correo.value.length > 45){
        mensaje +='-El campo correo no puede superar los 45 caracteres.\n';
        error = true;
    }

    /*Se llama a la funcion que valida el formato del correo electronico*/
    if (formulario.correo.value != ""){
        if (!validateEmail(formulario.correo.value)){
            mensaje +='-Email invalido formato: ejemplo@dominio.com.\n';
            error = true;
        }
    }

    /*Se valida que el campo clave no este vacio*/
    if (formulario.clave.value == "") {
        mensaje +='-El campo contrase�a no puede estar vacio.\n';
        error = true;
    }

    /*Se valida que el campo clave no exceda de 15 caracteres*/
    if (formulario.clave.value.length > 15){
        mensaje +='-El campo contrase�a no puede exceder los 15 caracteres.\n';
        error = true;
    }

    /*Se valida que el campo genero no este vacio*/
    if (formulario.genero.value == "") {
        mensaje +='-El campo genero no puede estar vacio.\n';
        error = true;
    }

    /*Se valida que el campo fecha de nacimiento no este vacio*/
    if (formulario.fechanac.value == "") {
        mensaje +='-El campo fecha de nacimiento no puede estar vacio.\n';
        error = true;
    }

       /*Se valida que el campo fecha de nacimiento no este vacio*/
    if (formulario.pin.value == "") {
        mensaje +='-Debe introducir el Codigo Pin.\n';
        error = true;
    }
    /*Si existen errores se presenta una lista con de los mismos al usuario*/
    if(error == true){
        jAlert(mensaje,'Verifique los siguiente puntos');
        return false;
    }

    
    else{
        /*si no existen errores se envia la informacion del formulario */
        document.forma.submit();
    }

}

/*
 * Funcion que recibe el formulario de inicio de sesion y valida los campos
 */
function validarLogin(formulario){

    error = false;

    mensaje = "ERRORES: \n";

    /*Valida que el usuario introduzca su correo para iniciar sesion*/
    if (formulario.user.value == ""){
        mensaje +='-Debe introducir el correo electronico.\n';
        error = true;
    }

    /*Valida que el campo correo no exceda de 45 caracteres*/
    if (formulario.user.value.length > 45){
        mensaje +='-El correo excede el tama�o permitido.\n';
        error = true;
    }

    /*Valida que el usuario introduzca un formato de correo valido*/
    if (formulario.user.value != ""){
        if (!validateEmail(formulario.user.value)){
            mensaje +='-Email invalido formato: ejemplo@dominio.com.\n';
            error = true;
        }
    }

    /*Valida que la clave cumpla con el rango valido*/
    if (formulario.pass.value.length > 15){
        mensaje +='-Contrase�a invalidad excede el tama�o permitido.\n';
        error = true;
    }

    /*Valida que el campo de contrase�a no este vacio*/
    if (formulario.pass.value == ""){
        mensaje +='-Debe introducir la contrase�a.\n';
        error = true;
    }

    /*Si existen errores se presenta una lista con de los mismos al usuario*/
    if(error == true){
        jAlert(mensaje,'Verifique los siguiente puntos');
        return false;
    }
    else{
        /*si no existen errores se envia la informacion del formulario */
        document.forma.submit();
    }
}

/*
 * Funcion que recibe el formulario de creacion de perfil y valida el contenido
 */
function validarInfoPerfil(formulario){

    error = false;

    mensaje = "ERRORES: \n";

    /*Valida que el campo no exceda de 100 caracteres*/
    if (formulario.intereses.value.length > 100){
        mensaje +='-Ha excedido el maximo de caracteres del campo.\n';
        error = true;
    }

    /*Valida que el campo no exceda de 300 caracteres*/
    if (formulario.describete.value.length > 300){
        mensaje +='-Ha excedido el maximo de caracteres del campo.\n';
        error = true;
    }

    /*Valida que el campo no exceda de 150 caracteres*/
    if (formulario.sitioweb.value.length > 150){
        mensaje +='-Ha excedido el maximo de caracteres del campo.\n';
        error = true;
    }

    /*Valida que el campo no exceda de 200 caracteres*/
    if (formulario.ideales.value.length > 200){
        mensaje +='-Ha excedido el maximo de caracteres del campo.\n';
        error = true;
    }

    /*Si existen errores se presenta una lista con de los mismos al usuario*/
    if(error == true){
        jAlert(mensaje,'Verifique los siguiente puntos');
        return false;
    }
    else{
        /*si no existen errores se envia la informacion del formulario */
        document.forma.submit();
    }
}

/*
 * Funcion que recibe el formulario para la recuperacion de contrase;a y lo valida
 */
function validarRecuperarCorreo(formulario){

    error = false;

    mensaje = "ERRORES: \n";

    /*Valida que el usuario introduzca el correo*/
    if (formulario.correo.value == ""){
        mensaje +='-Debe introducir el correo asociado a su cuenta.\n';
        error = true;
    }

    /*Valida que el correo no exceda el tama�o correspondiente*/
    if (formulario.correo.value.length > 45){
        mensaje +='-El correo excede el tama�o permitido.\n';
        error = true;
    }

    /*Valida que el formato del correo sea correcto*/
    if (formulario.correo.value != ""){
        if (!validateEmail(formulario.correo.value)){
            mensaje +='-Email invalido formato: ejemplo@dominio.com.\n';
            error = true;
        }
    }

    /*Si existen errores se presenta una lista con de los mismos al usuario*/
    if(error == true){
        jAlert(mensaje,'Verifique los siguiente puntos');
        return false;
    }
    else{
        /*si no existen errores se envia la informacion del formulario */
        document.forma.submit();
    }
}

/*
 * Funcion que valida los campos del formulario de creacion de ciudades
 */
function validarCiudad(){

    error = false;
    tam = document.Ciudad.nombre.value.length;
    var filterletras = /^[a-zA-Z. ]+$/i;
    mensaje = "ERRORES: \n";

    /*Valida que el campo nombre no este vacio*/
    if (document.Ciudad.nombre.value == ""){
        mensaje ='-Debe introducir el nombre de la ciudad.\n';
        jAlert(mensaje,'Verifique lo siguente');
        return false;
    }

    /*Valida que el campo nombre no exceda de 20 caracteres*/
    if (tam > 20){
        mensaje ='-El nombre del pais excede el tama�o permitido.\n';
        jAlert(mensaje,'Verifique lo siguiente');
        return false;
    }

    /*Valida que el campo nombre solo contenga caracteres alfabeticos*/
    if (!filterletras.test(document.Ciudad.nombre.value))
    {
        mensaje ='-Nombre invalido, solo se permiten caracteres alfabeticos.\n';
        jAlert(mensaje,'Verifique lo siguente');
        return false;
    }

    /*si no existen errores se envia la informacion del formulario */
    document.forma.submit();
}

/*
 * Funcion que valida los campos del formulario de creacion de paises
 */
function validarPais(){

    error = false;
    tam = document.Pais.nombre.value.length;
    var filterletras = /^[a-zA-Z. ]+$/i;
    mensaje = "ERRORES: \n";

    /*Valida que el campo nombre no este vacio*/
    if (document.Pais.nombre.value == ""){
        mensaje ='-Debe introducir el nombre del pais.\n';
        jAlert(mensaje,'Verifique los siguiente puntos');
        return false;
    }

    /*Valida que el campo nombre no exceda de 20 caracteres*/
    if (tam > 20){
        mensaje ='-El nombre del pais excede el tama�o permitido.\n';
        jAlert(mensaje,'Verifique los siguiente puntos');
        return false;
    }

    /*Valida que el campo nombre solo contenga caracteres alfabeticos*/
    if (!filterletras.test(document.Pais.nombre.value))
    {
        mensaje ='-Nombre invalido, solo se permiten caracteres alfabeticos.\n';
        jAlert(mensaje,'Verifique los siguiente puntos');
        return false;
    }

    /*si no existen errores se envia la informacion del formulario */
    document.forma.submit();
}

/*
 * Funcion que valida los campos del formulario para habilitar cuenta
 */
function validarHabilitar(formulario){

    error = false;

    mensaje = "ERRORES: \n";

    /*Valida que el usuario introduzca el correo*/
    if (formulario.correo.value == ""){
        mensaje +='-Debe introducir el correo electronico.\n';
        error = true;
    }

    /*Valida que el correo no exceda el tama�o correspondiente*/
    if (formulario.correo.value.length > 45){
        mensaje +='-El correo excede el tama�o permitido.\n';
        error = true;
    }

    /*Valida que el formato del correo sea correcto*/
    if (formulario.correo.value != ""){
        if (!validateEmail(formulario.correo.value)){
            mensaje +='-Email invalido formato: ejemplo@dominio.com.\n';
            error = true;
        }
    }

    /*Valida que la clave cumpla con el rango valido*/
    if (formulario.clave.value.length > 15){
        mensaje +='-Clave invalidad excede el tama�o permitido.\n';
        error = true;
    }

    /*Valida que el campo de contrase�a no este vacio*/
    if (formulario.clave.value == ""){
        mensaje +='-Debe introducir la clave.\n';
        error = true;
    }

     /*Si existen errores se presenta una lista con de los mismos al usuario*/
    if(error == true){
        jAlert(mensaje,'Verifique los siguiente puntos');
        return false;
    }
    else{
        /*si no existen errores se envia la informacion del formulario */
        document.forma.submit();
    }
}

/*
 * Funcion que valida los campos del formulario de creacion de viajes
 */
function validarViaje(formulario){

    error = false;
    var filterletras = /^[a-zA-Z. ]+$/i;
    mensaje = "ERRORES: \n";

    /*Valida que el viaje tenga fecha de inicio*/
    if (formulario.fechaini.value == ""){
        mensaje +='-Debe introducir la fecha de inicio del viaje.\n';
        jAlert(mensaje,'Verifique lo siguiente');
        return false;
    }

    /*Valida que el viajes tega fecha final*/
    if (formulario.fechafin.value == ""){
        mensaje +='-Debe introducir la fecha de finalizacion del viaje.\n';
        jAlert(mensaje,'Verifique lo siguiente');
        return false;
    }

    /*Valida que el viaje tenga hospedaje asignado*/
    if (formulario.hospedaje.value == ""){
        mensaje ='-El hospedaje debe estar indicado.\n';
        jAlert(mensaje,'Verifique lo siguiente');
        return false;
    }

    /*Verifica que el campo hospedaje no exceda de 45 caracteres*/
    if (formulario.hospedaje.value.length > 45){
        mensaje +='-El campo hospedaje excede la cantidad de caracteres.\n';
        jAlert(mensaje,'Verifique lo siguiente');
        return false;
    }

    /*Valida que el campo hospedaje contenga unicamente caracteres alfabeticos*/
    if (!filterletras.test(formulario.hospedaje.value))
    {
        mensaje ='-El campo hospedaje solo admite caracteres alfabeticos .\n';
        jAlert(mensaje,'Verifique lo siguiente');
        return false;
    }

    /*Valida que el campo hospedaje contenga unicamente caracteres alfabeticos*/
    if (formulario.select.value=="")
    {
        mensaje ='-Debe indicar el Pais del Viaje .\n';
        jAlert(mensaje,'Verifique lo siguiente');
        return false;
    }

     /*Valida que el campo hospedaje contenga unicamente caracteres alfabeticos*/
    if (formulario.ops.value=="")
    {
        mensaje ='-Debe indicar La Ciudad del Viaje .\n';
        jAlert(mensaje,'Verifique lo siguiente');
        return false;
    }

    /*si no existen errores se envia la informacion del formulario */
    document.forma.submit();
}


